home *** CD-ROM | disk | FTP | other *** search
/ AI Game Programming Wisdom / AIGameProgrammingWisdom.iso / SourceCode / 07 DecisionMaking Architectures / 01 Isla, Blumberg / README.txt < prev    next >
Encoding:
Text File  |  2001-09-25  |  4.0 KB  |  88 lines

  1. BBWar - Ver. 15-7-01
  2.  
  3. The files in this directory implement the java BBWar demo, a demo of blackboard coordination of multiple agents.
  4.  
  5.  
  6.  
  7.  
  8. ABOUT JAVA
  9. ----------
  10. Java is a SUN-developed object-oriented programming language similar in syntax to C++. Java source code is compiled to a cross-platform bytecode which is then interpreted at run-time. While few commercial applications are implemented in Java, its syntax is close enough to that of C++ that there is practically no learning curve when transferring from one to the other.
  11. For more on Java, including specifications, documentation and tutorials, see the SUN java site
  12.  
  13. http://java.sun.com/products/
  14.  
  15.  
  16.  
  17.  
  18. INSTALLING JAVA
  19. ---------------
  20.  
  21. BBWar requires the Java 2 VM and associated libraries. These packages are available off of the SUN site, 
  22.  
  23. http://www.javasoft.com/
  24.  
  25. To simply run the code given the provided class files, you will need the Java Runtime Environment, Standard Edition, v. 1.3. If you want to play around with the code as well you will need the Java 2 SDK, Standard Edition, v. 1.3.
  26.  
  27. After you download and install the appropriate package, make sure that the appropriate executables directory is added to your PATH variable. For example, if you downloaded the JDK 1.3.1 SDK on a Windows system, you would by default have the directory c:\jdk1.3.1\bin\ added to your path.
  28.  
  29. Java is of course cross-platform, and so will run on any machine with a Java 2-compliant virtual machine.
  30.  
  31.  
  32.  
  33.  
  34. TO RUN
  35. ------
  36.  
  37. BBWar can be run directly from the CD. From a command line 
  38.  
  39. java -classpath [PATH of the bb directory]\.. bb.BBWar
  40.  
  41.  
  42.  
  43.  
  44. TO COMPILE
  45. ----------
  46.  
  47. The process of compilation will generate the byte-code .class files from the .java files. Obviously you can't write the class files to the CD, so the best option would probably be to copy the 'bb' directory to a local writeable directory. Then, in that writeable directory, execute the following
  48.  
  49. javac *.java
  50.  
  51. This will let you play around with the code a little bit and maybe <gasp!> extend it.
  52.  
  53.  
  54.  
  55.  
  56. ABOUT BBWar
  57. -----------
  58.  
  59. BBWar is a simple little toy-RTS game, in which two computer-controlled armies battle it out on a simple landscape. The object for each army is to completely eradicate the other army! They do this by constructing and deploying military units -- the AI that controls all the behavior is built around a blackboard. See the "Blackboard Architectures" article in the Game AI Wisdom Book.
  60.  
  61. Of course, technically, BBWar is not a game at all, since there is no interactivity involved! And the game is still strategically fairly stupid. However, it is an example of an architecture that supports modular addition of smarter units and that handles much agent-coordination concerns automatically.
  62.  
  63.  
  64.  
  65.  
  66. RECENT CHANGES
  67. --------------
  68. The BBwar has changed a little bit since the submission of the Blackboard article. The major differences are:
  69.  
  70. * A resource-system has been introduced, such that in order to construct a unit, a city must spend a determined number of resources. A specified number of resource-pools of random size are placed randomly about the game-world at the beginning of each execution of the game.
  71.  
  72. * A "Worker" unit has been introduced, whose sole function is to gather resources and deliver them to the city most in need of them.
  73.  
  74. * The Colonel Unit has been removed from the game.
  75.  
  76. * A "Defense Tactician" unit has been introduced. This unit, while not participating directly in the battle, does a simple clustering analysis of death locations and "suggests" locations that it is important to defend (a tragically reactive form of military strategy!). Thus if a great number of soldiers have been lost in one area of the game-world, then that area will be defended more vigorously, regardless of whethere there is a city or a resource pool in that location. This mechanism results in the emergent formation of battle "fronts" in strategically important locations.
  77.  
  78.  
  79.  
  80.  
  81. CONTACT
  82. -------
  83.  
  84. Questions? Comments? Suggestions?
  85.  
  86. Damian Isla (naimad@media.mit.edu)
  87. The Synthetic Characters Group, MIT Media Lab
  88.